class Solution {
public:
    int numSpecialEquivGroups(vector<string>& words)
    {
        unordered_set<string> Set;
        for (auto e : words)
        {
            string odd, even;
            for (int i = 0; i < e.size(); i++)
            {
                if (i & 1)
                    odd += e[i];
                else
                    even += e[i];
            }
            ranges::sort(odd);
            ranges::sort(even);
            Set.insert(odd + even);
        }
        return Set.size();
    }
};